#ifndef GAMEBOARD_H
#define GAMEBOARD_H

#include <QGraphicsScene>
#include <QVector>

class Peg;
class Hole;

class GameBoard : public QGraphicsScene
{
    Q_OBJECT

    enum GameBoardConfiguration
    {
        O,  // Hole
        X,  // Hole with peg
        _   // Nothing
    };

    const static size_t m_height = 7;
    const static size_t m_width = 7;
    Hole *m_board[m_height][m_width];

public:
    explicit GameBoard(QObject *parent = 0);

    Hole *hole(const QPoint &pos) const;

    bool putPeg(const QPoint &target, Peg *peg);
    bool movePeg(const QPoint &source, const QPoint &target);
    Peg *removePeg(const QPoint &pos);
    bool removePegFromTheBoard(const QPoint &pos);

    void printBoard();
    
signals:
    
public slots:
    
};

#endif // GAMEBOARD_H
